package com.wyd.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 字符串工具类
 *
 * @author xw 2019年7月26日 下午4:58:58
 */
public class StringUtils {

    /**
     * 两个字符串是否相等
     */
    public static boolean equals(String str1, String str2) {
        if (str1 == str2) {
            return true;
        }
        if (str1 == null || str2 == null) {
            return false;
        }
        if (str1.length() != str2.length()) {
            return false;
        }
        return str1.equals(str2);
    }

    /**
     * 两个字符串是否相等（忽略大小写）
     */
    public static boolean equalsIgnoreCase(String str1, String str2) {
        if (str1 == str2) {
            return true;
        }
        if (str1 == null || str2 == null) {
            return false;
        }
        if (str1.length() != str2.length()) {
            return false;
        }
        return str1.equalsIgnoreCase(str2);
    }


    /**
     * 判断对象是否为空
     **/
    public static boolean isEmpty(String... strs) {
        if (strs == null || strs.length == 0) {
            return true;
        }
        for (String str : strs) {
            if (str == null || "".equals(str.toString().trim())) {
                return true;
            }
        }
        return false;
    }

    /**
     * 字符串是否不为 空/空字符串
     */
    public static boolean isNotEmpty(String... strs) {
        return !isEmpty(strs);
    }

    /**
     * 是否有任意为空的字符串
     *
     * @description 空数组、空list、空格字符串 不认为是null
     */
    public static boolean isAnyEmpty(final String... strs) {
        if (strs == null || strs.length == 0) {
            return false;
        }
        for (final String str : strs) {
            if (isEmpty(str)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 是否没有为空的字符串
     *
     * @description 空数组、空list、空格字符串 不认为是null
     */
    public static boolean isNoneEmpty(final String... strs) {
        return !isAnyEmpty(strs);
    }

    /**
     * 判断字符串中是否包含中文
     *
     * @param str 待校验字符串
     * @return 是否为中文
     * @warn 不能校验是否为中文标点符号
     */
    public static boolean hasChinese(String str) {
        Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
        Matcher m = p.matcher(str);
        if (m.find()) {
            return true;
        }
        return false;
    }

}
